/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fronteira;

import controlador.ControladorAdmin;
import entidade.CategoriaEntidade;
import entidade.operacoes.BDCategoria;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.AjaxBehaviorEvent;

/**
 *
 * @author thulioa
 */
@ManagedBean
@ViewScoped
public class AdminCategoriaMB {

    private List<CategoriaEntidade> categoria;
    private List<CategoriaEntidade> categoriaPai;
    private Integer idCategoriaPai;
    private List<CategoriaEntidade> categoriaFilha1;
    private Integer idCategoriaFilha1;
    private List<CategoriaEntidade> categoriaFilha2;
    private Integer idCategoriaFilha2;
   
    /**
     * Creates a new instance of AdminCategoriaMB
     */
    public AdminCategoriaMB() {
        BDCategoria ce = new BDCategoria();
        categoria = ce.listaCategoria();
        categoriaPai = new ArrayList<CategoriaEntidade>();
        categoriaPai = categoriaRoot(categoria);
    }
    
    private List<CategoriaEntidade> categoriaRoot(List<CategoriaEntidade> listaCompleta){
        ControladorAdmin ca = new ControladorAdmin();
        return ca.categoriaPai(listaCompleta);
        
    }
    
     private List<CategoriaEntidade> categoriaChild(Integer id, List<CategoriaEntidade> listaCompleta){
        ControladorAdmin ca = new ControladorAdmin();
        return ca.subCategoria(id, listaCompleta);
    }
    
    
    
    public List<CategoriaEntidade> getCategoria() {
        return categoria;
    }

    public void setCategoria(List<CategoriaEntidade> categoria) {
        this.categoria = categoria;
    }

    public List<CategoriaEntidade> getCategoriaPai() {
        return categoriaPai;
    }

    public void setCategoriaPai(List<CategoriaEntidade> categoriaPai) {
        this.categoriaPai = categoriaPai;
    }

    public List<CategoriaEntidade> getCategoriaFilha1() {
       if(idCategoriaPai != null){
            categoriaFilha1 = this.categoriaChild(idCategoriaPai, categoria);
        }
        
        return categoriaFilha1;
    }

    public void setCategoriaFilha1(List<CategoriaEntidade> categoriaFilha1) {
        this.categoriaFilha1 = categoriaFilha1;
    }

    public List<CategoriaEntidade> getCategoriaFilha2() {
        if(categoriaFilha1 != null){
            categoriaFilha2 = this.categoriaChild(idCategoriaFilha1, categoria);
        }
        
        return categoriaFilha2;
    }

    public void setCategoriaFilha2(List<CategoriaEntidade> categoriaFilha2) {
        this.categoriaFilha2 = categoriaFilha2;
    }

    public Integer getIdCategoriaPai() {
        return idCategoriaPai;
    }

    public void setIdCategoriaPai(Integer idCategoriaPai) {
        this.idCategoriaPai = idCategoriaPai;
    }

    public Integer getIdCategoriaFilha1() {
        return idCategoriaFilha1;
    }

    public void setIdCategoriaFilha1(Integer idCategoriaFilha1) {
        this.idCategoriaFilha1 = idCategoriaFilha1;
    }

    public Integer getIdCategoriaFilha2() {
        return idCategoriaFilha2;
    }

    public void setIdCategoriaFilha2(Integer idCategoriaFilha2) {
        this.idCategoriaFilha2 = idCategoriaFilha2;
    }

  
    
}
